import request from '@/utils/request'

/**
 * 店铺展示相关接口
 */
export default {
  /**
   * 获取店铺列表
   * @param {Object} params 查询参数
   * @param {number} [params.pageNum=1] 页码
   * @param {number} [params.pageSize=10] 每页数量
   * @param {string} [params.keyword] 搜索关键词
   * @param {number} [params.categoryId] 分类ID
   * @param {number} [params.onlyRecommend] 是否只查询推荐店铺
   * @returns {Promise<Object>} 店铺列表分页数据
   */
  list: (params = {}) => request.get('/api/v1/shops/list', {
    params: {
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10,
      keyword: params.keyword,
      categoryId: params.categoryId,
      onlyRecommend: params.onlyRecommend
    }
  }),

  /**
   * 获取店铺详情
   * @param {number} id 店铺ID
   * @returns {Promise} 店铺详情
   */
  detail: (id) => request.get(`/api/v1/shops/${id}`),

  /**
   * 获取店铺商品列表
   * @param {number} shopId 店铺ID
   * @param {Object} params 查询参数
   * @param {number} [params.pageNum=1] 页码
   * @param {number} [params.pageSize=10] 每页条数
   * @param {string} [params.sortBy] 排序方式：new-新品, sales-销量, price-价格
   * @returns {Promise} 商品列表
   */
  getProducts: (shopId, params) => request.get(`/api/v1/shops/${shopId}/products`, {
    params: {
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10,
      sortBy: params.sortBy
    }
  }),

  /**
   * 获取推荐店铺列表
   * @param {Object} params 查询参数
   * @param {number} [params.pageNum=1] 页码
   * @param {number} [params.pageSize=10] 每页条数
   * @returns {Promise} 推荐店铺列表
   */
  getRecommended: (params = {}) => request.get('/api/v1/shops/recommended', {
    params: {
      pageNum: params.pageNum || 1,
      pageSize: params.pageSize || 10
    }
  })
}
